"""
全国疫情可视化地图开发
"""

import json
from pyecharts.charts import Map
from pyecharts.options import *

# 读取文件数据
f = open(r"C:\Users\Lenovo\OneDrive\桌面\三种图的案例\疫情.txt", "r", encoding="utf-8")
data = f.read()
f.close()

# 处理数据
# 转json为python
data_dict = json.loads(data)
# 获取要的数据
# 总
province_data_list = data_dict["areaTree"][0]["children"]
#横轴、纵轴（组装每个省份和确诊人数为元组，封装进列表中）
data_list = []
for province_data in province_data_list:
    province_name = province_data["name"]
    province_confirm = province_data["total"]["confirm"]
    data_list.append((province_name, province_confirm))
print(data_list)

# 生成图像
# 获取图表对象
map = Map()
#添加数据
map.add("各省份确诊人数", data_list, "china")
# 设置全局配置（定制分段的视觉映射）
map.set_global_opts(
    title_opts=TitleOpts(title="全国疫情地图"),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "label": "1-99人", "color": "#CCFFFF"},
            {"min": 100, "max": 999, "label": "100-999人", "color": "#FFFF99"},
            {"min": 1000, "max": 4999, "label": "1000-4999人", "color": "#FF9966"},
            {"min": 5000, "max": 9999, "label": "5000-9999人", "color": "#FF6666"},
            {"min": 10000, "max": 99999, "label": "10000-99999人", "color": "#CC3333"},
            {"min": 100000, "label": "100000+", "color": "#990033"}

        ]
    )
)

# 绘图
map.render("全国疫情地图.html")





